import { DataTypes } from "sequelize";
import sequelize from "./db";
import { keyChunkStatus } from "./enums";

// TODO 后期想下，如何实现动态分配，不是先写好数据库。而是开始数据库是空的，根据节点请求，考虑是否创建，新的密钥块，并写入数据库。

/**
 * 密钥块
 */
export default sequelize.define('secret_key_chunk_21', {
  'id': {
    type: DataTypes.UUID,
    allowNull: false,
    primaryKey: true,
    unique: true,
    defaultValue: DataTypes.UUIDV4
  },

  'beginPos': { // 开始位置
    type: DataTypes.STRING(512),
    allowNull: false,
  },

  'endPos': { // 结束位置
    type: DataTypes.STRING(512),
    allowNull: false,
  },

  'beginTime': { // 开始时间
    type: DataTypes.STRING(40),
    allowNull: true,
  },

  'status': { // 状态
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: keyChunkStatus.undistributed
  },

  'result': { // 结果
    type: DataTypes.STRING(40),
    allowNull: true,
  },

  // 保留的字段，以备不时只需
  'reserve': {
    type: DataTypes.STRING(255),
    allowNull: true
  },

  //TODO 加一个 right字段，数据类型 TEXT，用于存储 匹配准确的 
  'right': {
    type: DataTypes.TEXT,
    allowNull: true
  }

}, {
  createdAt: false,
  updatedAt: false,
  freezeTableName: true
})